#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <stdbool.h>
#include "Queue.h"
typedef int BTDateType;
typedef struct BinaryTreeNode
{
	BTDateType value;
	struct BinaryTreeNode* left;
	struct BinaryTreeNode* right;
}BTNode;
BTNode* TreeBuyNode(BTDateType index);
void TreePreOrder(BTNode* tree);
void TreeInorder(BTNode* tree);
void TreePostorder(BTNode* tree);
int TreeNodeNumber(BTNode* tree);
int TreeDepth(BTNode* tree);
int TreeLeafNode(BTNode* tree);
int TreeKNums(BTNode* tree,int k);
BTNode* TreeFind(BTNode* tree, BTDateType x);
void TreeDestroy(BTNode* tree);
void TreeLevelTraversal(BTNode* tree);
bool IsCompleteBinaryTree(BTNode* tree);